
\subsection{赛事介绍}

OI 竞赛是一项全球的赛事，每年夏天会有世界级竞赛（IOI）举行，参赛选手大多都经过层层选拔。对于大部分选手而言，每年新赛季从 10 月的 NOIP （省级选拔赛）开始。

OI 竞赛中允许使用的语言包括 Pascal（NOI 将于 2020 年停止使用 Pascal，NOIP 将于 2022 年停止使用 Pascal），C 和 C++。其中 C++ 的版本不同考试有不同的规定。考试题目一般为算法或者数据结构相关的内容，题目形式包括传统题（最常见的规定输入和输出到文件的题目）和非传统题（提交答案题、交互题、补全代码题等等）。

\subsubsection{NOIP}

NOIP（National Olympiad in Informatics in Provinces）是全国青少年信息学奥林匹克联赛，顾名思义，是以省为单位排名评奖，对于大部分高校来说，获得省一等奖可以用于获得自主招生资格。

NOIP 分为初赛和复赛两个阶段。初赛会考察一些计算机基础知识和算法基础（笔试），复赛是上机考试，时间上一般是 11 月的第二个周末。全国使用同一套试卷，但是评奖规则是按照省内情况由 CCF （中国计算机学会）统一指定，并于赛后在 \href{http://www.noi.cn}{NOI 官方网站} 上公布。

\subsubsection{省选}

省队选拔赛是用于选拔各省参加全国赛的代表队，各个省队的名额有复杂的计算公式，一般和之前的成绩和参赛人数有关。省选由各个省自行决定，目前的趋势是很多省份选择联合命题。通常来讲，NOIP 分数需要在省选中占一定比例。

\subsubsection{NOI}

NOI（National Olympiad in Informatics）是全国信息学奥林匹克竞赛，一般在七月份举行，有现场赛和网络赛。现场赛选手分为四类，其中 A、B、C 类为正式选手。A、B 类对应省队的 A、B 类选手（其中 A 类在计算成绩时会有 5 分加分），C 类名义上是学校对 CCF 做出突出贡献后的奖励名额，D 类是邀请赛选手，如果成绩超过分数线的话，只有成绩证明而没有奖牌（同等分数含金量要低一些）。正式选手前 50 名组成国家集训队，获得保送资格。网络赛报名形式上没有门槛。

\subsubsection{WC}

WC（Winter Camp）是全国青少年信息学奥林匹克竞赛冬令营，是每年冬天在当年 NOI 举办地进行的一项活动，内容包括若干天的培训和一天的考试。这项考试主要用于从国家集训队（ 50 人）选拔国家候选队（ 15 人）。

\subsubsection{APIO}

APIO（Asia-Pacific Informatics Olympiad）是亚太地区信息学奥林匹克竞赛，CCF 每年会在五月初举办中国赛区镜像赛。在比赛日前后会有培训活动。

\subsubsection{CTSC}

CTSC（China Team Selection Competition）是中国队选拔赛。用来从国家候选队（ 15 人）中选拔国家队（ 6 人）准备参加当年夏天的 IOI 比赛，其中正式选手 4 人，替补选手 2 人。

注： APIO 和 CTSC 都是以省为单位报名，一般是按照 NOIP 成绩排序来确定谁会有机会参加 APIO 和 CTSC （二者一般时间上非常接近）。

\subsubsection{IOI}

IOI（International Olympiad in Informatics）是国际信息学奥林匹克竞赛，每个国家有四人参赛，比赛一般会有直播。IOI 赛制中每个题目会有 subtask （子任务），每个子任务对应一定的分数。

\subsection{赛制介绍}

\subsubsection{OI 赛制}

一般的 OI 赛制可以理解为单人在 5 个小时的时间内尝试解决 3 个题。每个题目可以不全部解决，会有多个数据点，题目的分数一般是数据点得分之和。每个数据点还可能会有部分分，就是数据点内部也不需要完全正确才能得到分数。评分方式是在比赛结束后统一评测，只有一次提交机会。

NOIP、NOI、省选都是 OI 赛制。

\subsubsection{IOI 赛制}

目前国内比赛也在逐渐向 IOI 赛制靠拢。

IOI 赛制可以赛时任意提交，可以即时查看评测结果， APIO、IOI 都是 IOI 赛制。

\subsubsection{ICPC 赛制}

在 ICPC 比赛中一般是三个人使用一台机器，每个题目只有在所有数据点全部正确后才能得到分数。比赛过程中可以有多次提交机会，实时评测并返回结果。比赛排名根据做题数和罚时来评判，罚时是通过题目的用时之和加上错误提交次数乘以一个系数。在 ICPC 相关赛事中，选手允许带纸质资料。

\subsubsection{Codeforces (CF) 赛制}

\href{https://codeforces.com}{Codeforces} 是一个在线评测系统，定期会举办比赛。它的比赛特点是在比赛过程中只测试一部分数据（pretests），而在比赛结束后返回完整的所有测试点的测试结果（system tests）。比赛时可以多次提交，允许 hack 别人的代码（此处 hack 的意思是提交一个测试数据，使得别人的代码无法给出正确答案）。当然，如果想要 hack ，必须要锁定自己的代码（换言之，比赛时无法重新提交该题）。

\subsection{其他国家和地区的 OI 竞赛}

\subsubsection{美国：USACO}

官网地址：\url{https://www.usaco.org/}

USACO 或许是国内选手最熟悉的外国 OI 竞赛（因此可能也是中文题解最多的外国 OI 竞赛）。  

每年冬季到初春，USACO 会每月举办一场网络赛。一场比赛持续 $3\sim5$ 个小时。  

根据官网的介绍，USACO 的比赛分成这 4 档难度（2015\textasciitilde{}2016 学年之前为 3 档）：

\begin{itemize}
\item 铜牌组，适合编程初学者，尤其是只学了最最基础的算法（如：排序，二分查找）的学生。
\item 银牌组，适合开始学习基本的算法技巧（如：递归，搜索，贪心算法）和基础数据结构的学生。
\item 金牌组，学生会遇到更复杂的算法（如：最短路径，DP）和更高级的数据结构。
\item 铂金组，适合有着扎实的算法设计能力的选手，铂金组可以帮助他们以复杂且更开放的问题来\sout{放飞}挑战自我。
\end{itemize}

在国内，目前 USACO 题目最齐全的是洛谷。

\subsubsection{波兰：POI}

官网：\url{https://oi.edu.pl/}  

官方提交地址：\url{https://szkopul.edu.pl/p/default/problemset/}  

POI 是不少省选选手最常刷的外国 OI 比赛。  

根据（已经凉凉的）\url{http://main.edu.pl/en/} 的描述，POI 的流程如下：  

\begin{itemize}
\item 第一轮：五题，网络赛，公开赛。
\item 第二轮：包含一场练习赛，和两场正式比赛。
\item 第三轮：赛制同上。
\item ONTAK：POI 训练营（类似国内的集训队）
\end{itemize}

你可能还听说过 PA。PA 的大意是 “算法大战”（我也不知道为啥它叫这名字）。

目前在国内 OJ 中，POI 题目最全的是 BZOJ。

\subsubsection{克罗地亚：COCI}

官网地址：\url{http://www.hsin.hr/coci/}  

（有时候英文版的更新会延迟，克罗地亚语版本：\url{http://www.hsin.hr/honi/}）

难度跨度很大的比赛，大约是从普及 - $\sim$ 省选 -。以往 COCI 所有的题目均提供题目、数据、题解和标程，然而从 2017 年底之后，COCI 的题解和标程就断更了（不是没有英语版翻译，而是连克罗地亚语的版本都没有）。

洛谷、BZOJ 和 LibreOJ 都有少量的 COCI 题目。

\subsubsection{日本：JOI}

官网地址：\url{https://www.ioi-jp.org/}  

日本信息学奥赛（日本情報オリンピック）一般简称为 JOI。JOI 所有的题目都提供题目、数据、题解和标程。近两年的 JOI 决赛和春训营提供了英语题面，但并没有英语题解。历年的 JOI Open 都提供了英语版题面和题解。绝大部分 JOI 题可以左转 AtCoder 提交。

JOI 的流程：

\begin{itemize}
\item 预赛（予選）
\item 决赛（本選 / JOI Final）
\item 春训营（春季トレーニング合宿 / JOI Spring Camp / JOISC）
\item 公开赛（通信教育 / JOI Open Contest）
\end{itemize}

目前 LibreOJ 和 BZOJ 有近些年的 JOI Final、JOISC 和 JOI Open 的题目。UOJ 有部分 JOISC 2017 的题目。

JOI Final 的难度在提高 - $\sim$ 提高 + 左右。JOISC 和 JOI Open 的题目的难度在提高 $\sim$ NOI - 不等。

你可以在 JOI 官网或者 AtCoder 上找到更多的 JOI 题 (日文题面)

\subsubsection{台湾地区：資訊奧林匹亞競賽}

台湾地区把 OI 中的 informatics 翻译成 “资讯” 而非大陆通用的翻译 “信息”。  

台湾地区的选手如果想去参加 IOI，需要经过这几场比赛的洗礼：  

\begin{itemize}
\item 區域資訊學科能力競賽
\item 全國資訊學科能力競賽
\item 資訊研習營（TOI）
\end{itemize}

\subsubsection{俄罗斯：ROI}

俄罗斯信息学奥赛（олимпиадная информатика）一般简称为 ROI。  

官网：\url{http://neerc.ifmo.ru/school/archive/index.html}  

在线提交地址：\url{https://contest.yandex.ru/roiarchive/}  

一般简称为 ROI。流程：

\begin{itemize}
\item 市级比赛（Municipal stage / Муниципальный этап）
\item 地区级比赛（Regional Stage / Региональный этап）
\item 决赛（Final Stage / Заключительный этап）
\end{itemize}

你可能已经在 Codeforces 上见过了一些 ROI 题。目前 LibreOJ 有近两年的 ROI 决赛题（包括翻译）。

\subsubsection{加拿大：CCC \& CCO}

CCC: Canadian Computing Competition  

CCO: Canadian Computing Olympiad  

官网地址：\url{https://cemc.math.uwaterloo.ca/contests/past_contests.html#ccc}  

CCC 提交地址：\url{https://dmoj.ca/problems/?category=4}  

CCO 提交地址：\url{https://dmoj.ca/problems/?category=24}  

CCC 在 DMOJ 有官方 (?) 题解。  

CCC Junior / Senior 贴近 NOIP 普及组 / 提高组难度。CCO 想要拿到金牌可能得有 NOI 银的水平。

\subsubsection{法国与澳大利亚：FARIO}

提交地址：\url{http://orac.amt.edu.au/cgi-bin/train/hub.pl}

FARIO 的题目与 NOI 的难度旗鼓相当。

\subsection{其它大洲级 OI 竞赛}

\subsubsection{BalticOI}

BalticOI 面向的是波罗的海周边各国。BalticOI 2018 的参赛国有立陶宛、波兰、爱沙尼亚、芬兰等 9 国。

除了 2017 年，BalticOI 每年都公开题面、测试数据和题解。然而 BalticOI 没有一个固定的官网，每年的主办方都会新建一个网站…… 关于历年的官网地址，Planet6174 整理出了一个\href{https://loj.ac/article/416}{帖子}。

目前 LibreOJ 有近十年的 BalticOI 题。

\subsubsection{BalkanOI}

BalkanOI 面向巴尔干地区周边各国。BalkanOI 2018 的参赛国有罗马尼亚、希腊、保加利亚、塞尔维亚等 12 国。

BalkanOI 只有某几年公开题面、测试数据和题解，官网地址参见上面那个帖子。

\subsubsection{CEOI}

CEOI 2018 的参赛国与上面两个比赛有部分重叠，包括波兰、罗马尼亚、格鲁吉亚、克罗地亚等国。

CEOI 每年都公开题面、测试数据和题解，官网地址参见上面那个帖子。

在国内 OJ 中，BZOJ 的 CEOI 题相对最齐。

\subsubsection{Nordic Olympiads in Informatics (NOI)}

官网地址：\url{http://nordic.progolymp.se}

近两年才开始举办的比赛，面向北欧各国。
